package thread.model;

public class Consumer extends Thread {

    /**
     * 1.while(true)
     * 2.synchronized ()
     * 3.判断生产者是否已经停止生产了，如果已经停止了，就跳出，如果没有，则可以继续去仓库拿
     * 4.判断仓库是否有物品，如果有，则直接拿。拿了就需要讲次数减一，然后呼叫生产者生产
     * 5.如果没有，则等待生产者生产
     */
    public void run() {
        while (true) {
            synchronized (WareHouse.object) {
//                try {
//                    Thread.sleep(100);
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
                if (WareHouse.count == 0) {
                    break;
                } else {
                    if (WareHouse.isNull) {
                        System.out.println(getName() + "消费者可以拿产品了");

                        WareHouse.isNull = false;
                        WareHouse.object.notifyAll();
                        WareHouse.count--;
                    } else {
                        try {
                            WareHouse.object.wait();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }


                }
            }
        }
    }
}